home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Visual Cafe 3
/
Visual Cafe 3.ISO
/
Vcafe
/
Main.bin
/
Archiver.java
< prev
next >
Encoding:
Amiga
Atari
Commodore
DOS
FM Towns/JPY
Macintosh
Macintosh JP
Macintosh to JP
NeXTSTEP
RISC OS/Acorn
Shift JIS
UTF-8
Wrap
Java Source
|
1998-11-03
|
33.3 KB
|
1,299 lines
package com.symantec.itools.tools.archive;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.util.StringTokenizer;
import java.util.Vector;
import com.symantec.itools.frameworks.application.commandline.Application;
import com.symantec.itools.frameworks.application.commandline.BooleanOption;
import com.symantec.itools.frameworks.application.commandline.EmptyOption;
import com.symantec.itools.frameworks.application.commandline.InvalidArgumentException;
import com.symantec.itools.frameworks.application.commandline.MissingArgumentsException;
import com.symantec.itools.frameworks.application.commandline.Option;
import com.symantec.itools.frameworks.application.commandline.StringArrayOption;
import com.symantec.itools.frameworks.application.commandline.StringOption;
import com.symantec.itools.io.Directory;
import com.symantec.itools.io.NotDirectoryException;
import com.symantec.itools.lang.AccessiblePlatform;
import com.symantec.itools.lang.Debug;
import com.symantec.itools.lang.DynamicClassException;
import com.symantec.itools.util.Properties;
/**
* @author Symantec Internet Tools Division
* @version 1.0
* @since VCafe 3.0
*/
public class Archiver
extends Application
{
/**
* @since VCafe 3.0
*/
protected final static String VERSION = "Beta 1 - 0.0.0";
/**
* @since VCafe 3.0
*/
protected Options options;
/**
* @since VCafe 3.0
*/
protected TypeValidator validatorType;
/**
* @since VCafe 3.0
*/
protected TypeArchiver archiverType;
/**
* @since VCafe 3.0
*/
protected TypeSigning signingType;
/**
* @author Symantec Internet Tools Division
* @version 1.0
* @since VCafe 3.0
*/
class TypeOption
extends StringOption
{
/**
* @param args TODO
* @param startIndex TODO
* @exception com.symantec.itools.frameworks.application.commandline.InvalidArgumentException
* @since VCafe 3.0
*/
public void parseArg(String[] args, int startIndex)
throws InvalidArgumentException
{
setType(getString(args, startIndex));
}
}
/**
* @author Symantec Internet Tools Division
* @version 1.0
* @since VCafe 3.0
*/
class VerboseOption
extends BooleanOption
{
/**
* @param args TODO
* @param startIndex TODO
* @exception com.symantec.itools.frameworks.application.commandline.InvalidArgumentException
* @since VCafe 3.0
*/
public void parseArg(String[] args, int startIndex)
throws InvalidArgumentException
{
setVerbose(getBoolean(args, startIndex));
}
}
/**
* @author Symantec Internet Tools Division
* @version 1.0
* @since VCafe 3.0
*/
class FilesOption
extends StringArrayOption
{
/**
* @param args TODO
* @param startIndex TODO
* @exception com.symantec.itools.frameworks.application.commandline.InvalidArgumentException
* @since VCafe 3.0
*/
public void parseArg(String[] args, int startIndex)
throws InvalidArgumentException
{
int i;
for(i = startIndex + 1; i < args.length; i++)
{
char c;
c = args[i].charAt(0);
if((c == '-') || (c == '/'))
{
break;
}
}
setFiles(getStringArray(args, startIndex, i - startIndex - 1));
}
}
/**
* @author Symantec Internet Tools Division
* @version 1.0
* @since VCafe 3.0
*/
class EntriesOption
extends StringArrayOption
{
/**
* @param args TODO
* @param startIndex TODO
* @exception com.symantec.itools.frameworks.application.commandline.InvalidArgumentException
* @since VCafe 3.0
*/
public void parseArg(String[] args, int startIndex)
throws InvalidArgumentException
{
int i;
for(i = startIndex + 1; i < args.length; i++)
{
char c;
c = args[i].charAt(0);
if((c == '-') || (c == '/'))
{
break;
}
}
setEntries(getStringArray(args, startIndex, i - startIndex - 1));
}
}
/**
* @author Symantec Internet Tools Division
* @version 1.0
* @since VCafe 3.0
*/
class DebugOption
extends BooleanOption
{
/**
* @param args TODO
* @param startIndex TODO
* @exception com.symantec.itools.frameworks.application.commandline.InvalidArgumentException
* @since VCafe 3.0
*/
public void parseArg(String[] args, int startIndex)
throws InvalidArgumentException
{
setDebug(getBoolean(args, startIndex));
}
}
/**
* @author Symantec Internet Tools Division
* @version 1.0
* @since VCafe 3.0
*/
class OverwriteOption
extends BooleanOption
{
/**
* @param args TODO
* @param startIndex TODO
* @exception com.symantec.itools.frameworks.application.commandline.InvalidArgumentException
* @since VCafe 3.0
*/
public void parseArg(String[] args, int startIndex)
throws InvalidArgumentException
{
setOverwrite(getBoolean(args, startIndex));
}
}
/**
* @author Symantec Internet Tools Division
* @version 1.0
* @since VCafe 3.0
*/
class OutOption
extends StringArrayOption
{
/**
* @param args TODO
* @param startIndex TODO
* @exception com.symantec.itools.frameworks.application.commandline.InvalidArgumentException
* @since VCafe 3.0
*/
public void parseArg(String[] args, int startIndex)
throws InvalidArgumentException
{
int i;
String[] array;
StringBuffer buf;
for(i = startIndex + 1; i < args.length; i++)
{
if(args[i].endsWith("\""))
{
i++;
break;
}
}
array = getStringArray(args, startIndex, i - startIndex - 1);
buf = new StringBuffer();
for(i = 0; i < array.length; i++)
{
buf.append(array[i]).append(' ');
}
setOutputLocation(buf.toString().trim());
}
}
/**
* @author Symantec Internet Tools Division
* @version 1.0
* @since VCafe 3.0
*/
class TempDirOption
extends StringArrayOption
{
/**
* @param args TODO
* @param startIndex TODO
* @exception com.symantec.itools.frameworks.application.commandline.InvalidArgumentException
* @since VCafe 3.0
*/
public void parseArg(String[] args, int startIndex)
throws InvalidArgumentException
{
int i;
String[] array;
StringBuffer buf;
for(i = startIndex + 1; i < args.length; i++)
{
if(args[i].endsWith("\""))
{
i++;
break;
}
}
array = getStringArray(args, startIndex, i - startIndex - 1);
buf = new StringBuffer();
for(i = 0; i < array.length; i++)
{
buf.append(array[i]).append(' ');
}
setTempDir(buf.toString().trim());
}
}
/**
* @author Symantec Internet Tools Division
* @version 1.0
* @since VCafe 3.0
*/
class DebugLogOption
extends StringOption
{
/**
* @param args TODO
* @param startIndex TODO
* @exception com.symantec.itools.frameworks.application.commandline.InvalidArgumentException
* @since VCafe 3.0
*/
public void parseArg(String[] args, int startIndex)
throws InvalidArgumentException
{
setDebugLog(getString(args, startIndex));
}
}
/**
* @author Symantec Internet Tools Division
* @version 1.0
* @since VCafe 3.0
*/
class ClasspathOption
extends StringArrayOption
{
/**
* @param args TODO
* @param startIndex TODO
* @exception com.symantec.itools.frameworks.application.commandline.InvalidArgumentException
* @since VCafe 3.0
*/
public void parseArg(String[] args, int startIndex)
throws InvalidArgumentException
{
int i;
String[] array;
StringBuffer buf;
for(i = startIndex + 1; i < args.length; i++)
{
if(args[i].endsWith("\""))
{
i++;
break;
}
}
array = getStringArray(args, startIndex, i - startIndex - 1);
buf = new StringBuffer();
for(i = 0; i < array.length; i++)
{
buf.append(array[i]).append(' ');
}
setClasspath(buf.toString().trim());
}
}
/**
* @author Symantec Internet Tools Division
* @version 1.0
* @since VCafe 3.0
*/
class ResponseFileOption
extends EmptyOption
{
/**
* @param args TODO
* @param startIndex TODO
* @exception com.symantec.itools.frameworks.application.commandline.InvalidArgumentException
* @since VCafe 3.0
*/
public void parseArg(String[] args, int startIndex)
throws InvalidArgumentException
{
if(args[startIndex].startsWith("@"))
{
try
{
setResponseFile(args[startIndex].substring(1));
}
catch(IOException ex)
{
Debug.logException(ex);
}
}
}
}
/**
* @author Symantec Internet Tools Division
* @version 1.0
* @since VCafe 3.0
*/
class HelpOption
extends EmptyOption
{
/**
* @param args TODO
* @param startIndex TODO
* @exception com.symantec.itools.frameworks.application.commandline.InvalidArgumentException
* @since VCafe 3.0
*/
public void parseArg(String[] args, int startIndex)
throws InvalidArgumentException
{
showHelp();
}
}
/**
* @author Symantec Internet Tools Division
* @version 1.0
* @since VCafe 3.0
*/
class SignerOption
extends StringOption
{
/**
* @param args TODO
* @param startIndex TODO
* @exception com.symantec.itools.frameworks.application.commandline.InvalidArgumentException
* @since VCafe 3.0
*/
public void parseArg(String[] args, int startIndex)
throws InvalidArgumentException
{
setSigner(getString(args, startIndex));
}
}
/**
* @author Symantec Internet Tools Division
* @version 1.0
* @since VCafe 3.0
*/
class SignerArgsOption
extends StringArrayOption
{
/**
* @param args TODO
* @param startIndex TODO
* @exception com.symantec.itools.frameworks.application.commandline.InvalidArgumentException
* @since VCafe 3.0
*/
public void parseArg(String[] args, int startIndex)
throws InvalidArgumentException
{
int i;
String[] array;
StringBuffer buf;
for(i = startIndex + 1; i < args.length; i++)
{
args[i] = args[i].trim();
if(args[i].startsWith("\\\""))
{
args[i] = args[i].substring(1);
}
if(args[i].endsWith("\""))
{
// remove "\" from embeded quoted file
if(args[i].endsWith("\\\""))
{
args[i] = args[i].substring(0, args[i].length() - 2) + "\"";
}
// if we have "\"" then we are done - remove embeded \
else if(args[i].endsWith("\"\""))
{
args[i] = args[i].substring(0, args[i].length() - 3) + "\"\"";
i++;
break;
}
else
{
i++;
break;
}
}
}
array = getStringArray(args, startIndex, i - startIndex - 1);
buf = new StringBuffer();
for(i = 0; i < array.length; i++)
{
buf.append(array[i]).append(' ');
}
setSignerArgs(buf.toString().trim());
}
}
/**
* @author Symantec Internet Tools Division
* @version 1.0
* @since VCafe 3.0
*/
class ArchiverArgsOption
extends StringArrayOption
{
/**
* @param args TODO
* @param startIndex TODO
* @exception com.symantec.itools.frameworks.application.commandline.InvalidArgumentException
* @since VCafe 3.0
*/
public void parseArg(String[] args, int startIndex)
throws InvalidArgumentException
{
int i;
String[] array;
StringBuffer buf;
for(i = startIndex + 1; i < args.length; i++)
{
args[i] = args[i].trim();
if(args[i].startsWith("\\\""))
{
args[i] = args[i].substring(1);
}
if(args[i].endsWith("\""))
{
if(args[i].endsWith("\\\""))
{
args[i] = args[i].substring(0, args[i].length() - 2) + "\"";
}
else
{
i++;
break;
}
}
}
array = getStringArray(args, startIndex, i - startIndex - 1);
buf = new StringBuffer();
for(i = 0; i < array.length; i++)
{
buf.append(array[i]).append(' ');
}
setArchiverArgs(buf.toString().trim());
}
}
/**
* @author Symantec Internet Tools Division
* @version 1.0
* @since VCafe 3.0
*/
class MicrosoftToolsOption
extends StringOption
{
/**
* @param args TODO
* @param startIndex TODO
* @exception com.symantec.itools.frameworks.application.commandline.InvalidArgumentException
* @since VCafe 3.0
*/
public void parseArg(String[] args, int startIndex)
throws InvalidArgumentException
{
setMicrosoftTools(getString(args, startIndex));
}
}
// /**
// * @author Symantec Internet Tools Division
// * @version 1.0
// * @since VCafe 3.0
// */
// class NetscapeToolsOption
// extends StringOption
// {
// /**
// * @param args TODO
// * @param startIndex TODO
// * @exception com.symantec.itools.frameworks.application.commandline.InvalidArgumentException
// * @since VCafe 3.0
// */
// public void parseArg(String[] args, int startIndex)
// throws InvalidArgumentException
// {
// setNetscapeTools(getString(args, startIndex));
// }
// }
/**
* @author Symantec Internet Tools Division
* @version 1.0
* @since VCafe 3.0
*/
class SunToolsOption
extends StringOption
{
/**
* @param args TODO
* @param startIndex TODO
* @exception com.symantec.itools.frameworks.application.commandline.InvalidArgumentException
* @since VCafe 3.0
*/
public void parseArg(String[] args, int startIndex)
throws InvalidArgumentException
{
setSunTools(getString(args, startIndex));
}
}
public Archiver()
throws IOException
{
options = new Options();
}
/**
* @param args TODO
* @since VCafe 3.0
*/
protected boolean parseArgs(String[] args)
{
try
{
super.parseArgs(args);
}
catch(InvalidArgumentException ex)
{
if(ex instanceof MissingArgumentsException)
{
showUsage();
}
else
{
// Debug.logException(ex);
}
return (false);
}
return (true);
}
/**
* @since VCafe 3.0
*/
public Option[] getOptions()
{
try
{
Properties properties;
Properties arg;
Option[] options;
Option defaultOption;
properties = new Properties("/com/symantec/itools/tools/archive/Args.properties");
properties = properties.getProperties("arguments");
options = new Option[16];
arg = properties.getProperties("type");
options[0] = new TypeOption();
getArg(options[0], arg);
arg = properties.getProperties("out");
options[1] = new OutOption();
getArg(options[1], arg);
arg = properties.getProperties("tempdir");
options[2] = new TempDirOption();
getArg(options[2], arg);
arg = properties.getProperties("classpath");
options[3] = new ClasspathOption();
getArg(options[3], arg);
arg = properties.getProperties("verbose");
options[4] = new VerboseOption();
getArg(options[4], arg);
arg = properties.getProperties("files");
options[5] = new FilesOption();
getArg(options[5], arg);
arg = properties.getProperties("entries");
options[6] = new EntriesOption();
getArg(options[6], arg);
arg = properties.getProperties("signer");
options[7] = new SignerOption();
getArg(options[7], arg);
arg = properties.getProperties("overwrite");
options[8] = new OverwriteOption();
getArg(options[8], arg);
arg = properties.getProperties("debug");
options[9] = new DebugOption();
getArg(options[9], arg);
arg = properties.getProperties("debuglog");
options[10] = new DebugLogOption();
getArg(options[10], arg);
arg = properties.getProperties("help");
options[11] = new HelpOption();
getArg(options[11], arg);
arg = properties.getProperties("mstools");
options[12] = new MicrosoftToolsOption();
getArg(options[12], arg);
arg = properties.getProperties("suntools");
options[13] = new SunToolsOption();
getArg(options[13], arg);
arg = properties.getProperties("archiverargs");
options[14] = new ArchiverArgsOption();
getArg(options[14], arg);
arg = properties.getProperties("signerargs");
options[15] = new SignerArgsOption();
getArg(options[15], arg);
// arg = properties.getProperties("nstools");
// options[13] = new NetscapeToolsOption();
// getArg(options[13], arg);
arg = properties.getProperties("default");
defaultOption = new Archiver.ResponseFileOption();
defaultOption.setFlags(arg.getStringList("flags", new String[] {""}));
defaultOption.setShortDesc(arg.getString("shortdesc"));
defaultOption.setLongDesc(arg.getString("longdesc"));
defaultOption.setHelp(arg.getString("help"));
setDefaultOption(defaultOption);
return (options);
}
catch(IOException ex)
{
// Debug.logException(ex);
}
return (null);
}
/**
* @since VCafe 3.0
*/
protected void getArg(Option option, Properties arg)
{
option.setFlags(arg.getStringList("flags"));
option.setMandatory(arg.getBoolean("mandatory"));
option.setDefaultValue(arg.getStringList("defaults"));
option.setShortDesc(arg.getString("shortdesc"));
option.setLongDesc(arg.getString("longdesc"));
option.setHelp(arg.getString("help"));
}
/**
* @param errorMsg TODO
* @exception com.symantec.itools.lang.DynamicClassException
* @since VCafe 3.0
*/
public boolean validate(StringBuffer errorMsg)
throws DynamicClassException
{
boolean retVal;
validatorType = options.getValidator();
if(validatorType == null)
{
errorMsg.append("Invalid validator for " + options.getType() + " in Archiver" +
AccessiblePlatform.getJavaVersion() + ".properties");
return (false);
}
retVal = validatorType.validate(errorMsg);
validatorType = null;
return (retVal);
}
/**
* @param errorMsg TODO
* @exception com.symantec.itools.lang.DynamicClassException
* @since VCafe 3.0
*/
public boolean create(StringBuffer errorMsg)
throws DynamicClassException
{
boolean retVal;
archiverType = options.getArchiver();
if(archiverType == null)
{
errorMsg.append("Invalid Archiver for " + options.getType() + " in Archiver" +
AccessiblePlatform.getJavaVersion() + ".properties");
return (false);
}
retVal = archiverType.create(errorMsg);
archiverType = null;
return (retVal);
}
/**
* @param errorMsg TODO
* @exception com.symantec.itools.lang.DynamicClassException
* @since VCafe 3.0
*/
public boolean sign(StringBuffer errorMsg)
throws DynamicClassException
{
boolean retVal;
signingType = options.getSign();
if(signingType == null)
{
errorMsg.append("Invalid signer for " + options.getType() + " in Archiver" +
AccessiblePlatform.getJavaVersion() + ".properties");
return (false);
}
retVal = signingType.sign(errorMsg);
signingType = null;
return (retVal);
}
/**
* @since VCafe 3.0
*/
public void cancel()
{
if(validatorType != null)
{
validatorType.cancel();
}
else if(archiverType != null)
{
archiverType.cancel();
}
else if(signingType != null)
{
signingType.cancel();
}
}
/**
* @param t TODO
* @since VCafe 3.0
*/
public void setType(String t)
{
String str;
str = t.toLowerCase();
if(str.equals("directory"))
{
str = "dir";
}
options.setType(str);
}
/**
* @param f TODO
* @since VCafe 3.0
*/
public void setVerbose(boolean f)
{
options.setVerbose(f);
}
/**
* @param files TODO
* @since VCafe 3.0
*/
public void setFiles(String[] files)
{
options.setFiles(files);
}
/**
* @param entries TODO
* @since VCafe 3.0
*/
public void setEntries(String[] entries)
{
options.setEntries(entries);
}
/**
* @param f TODO
* @since VCafe 3.0
*/
public void setDebug(boolean f)
{
options.setDebug(f);
}
/**
* @param f TODO
* @since VCafe 3.0
*/
public void setOverwrite(boolean f)
{
options.setOverwrite(f);
}
/**
* @param location TODO
* @since VCafe 3.0
*/
public void setOutputLocation(String location)
{
options.setOutputLocation(location);
}
/**
* @param location TODO
* @since VCafe 3.0
*/
public void setTempDir(String location)
{
options.setTempDir(location);
}
/**
* @param location TODO
* @since VCafe 3.0
*/
public String getTempDir()
{
return (options.getTempDir());
}
/**
* @param cp TODO
* @since VCafe 3.0
*/
public void setClasspath(String cp)
{
// remove quotes!
cp = cp.substring(1, cp.length() - 1);
options.setClasspath(cp);
}
/**
* @param fileName TODO
* @since VCafe 3.0
*/
public void setDebugLog(String fileName)
{
options.setDebugLog(fileName);
}
/**
* @param str TODO
* @since VCafe 3.0
*/
public void setSigner(String str)
{
options.setSigner(str);
}
/**
* @param str TODO
* @since VCafe 3.0
*/
public void setSignerArgs(String str)
{
// remove quotes!
str = str.substring(1, str.length() - 1);
options.setSignerArgs(str);
}
/**
* @param str TODO
* @since VCafe 3.0
*/
public void setArchiverArgs(String str)
{
// remove quotes!
str = str.substring(1, str.length() - 1);
options.setArchiverArgs(str);
}
/**
* @since VCafe 3.0
*/
public String getType()
{
return (options.getType());
}
/**
* @since VCafe 3.0
*/
public boolean isVerbose()
{
return (options.isVerbose());
}
/**
* @since VCafe 3.0
*/
public String[] getFiles()
{
return (options.getFiles());
}
/**
* @since VCafe 3.0
*/
public String[] getEntries()
{
return (options.getEntries());
}
/**
* @since VCafe 3.0
*/
public boolean isDebug()
{
return (options.isDebug());
}
/**
* @since VCafe 3.0
*/
public boolean isOverwrite()
{
return (options.isOverwrite());
}
/**
* @since VCafe 3.0
*/
public String getOutputLocation()
{
return (options.getOutputLocation());
}
/**
* @since VCafe 3.0
*/
public String getClasspath()
{
return (options.getClasspath());
}
/**
* @since VCafe 3.0
*/
public String getDebugLog()
{
return (options.getDebugLog());
}
/**
* @since VCafe 3.0
*/
public boolean isSigning()
{
return (options.isSigning());
}
/**
* @since VCafe 3.0
*/
public String getSigner()
{
return (options.getSigner());
}
/**
* @since VCafe 3.0
*/
public String getSignerArgs()
{
return (options.getSignerArgs());
}
/**
* @since VCafe 3.0
*/
public String getArchiverArgs()
{
return (options.getArchiverArgs());
}
/**
* @param str TODO
* @since VCafe 3.0
*/
public void setMicrosoftTools(String str)
{
options.setMicrosoftTools(str);
}
/**
* @since VCafe 3.0
*/
public String getMicrosoftTools()
{
return (options.getMicrosoftTools());
}
// /**
// * @param str TODO
// * @since VCafe 3.0
// */
// public void setNetscapeTools(String str)
// {
// options.setNetscapeTools(str);
// }
// /**
// * @since VCafe 3.0
// */
// public String getNetscapeTools()
// {
// return (options.getNetscapeTools());
// }
/**
* @param str TODO
* @since VCafe 3.0
*/
public void setSunTools(String str)
{
options.setSunTools(str);
}
/**
* @since VCafe 3.0
*/
public String getSunTools()
{
return (options.getSunTools());
}
/**
* @since VCafe 3.0
*/
public void setResponseFile(String fileName)
throws FileNotFoundException,
IOException
{
BufferedReader reader;
reader = null;
try
{
String line;
Vector contents;
String[] rspArgs;
contents = new Vector();
reader = new BufferedReader(new FileReader(fileName));
while((line = reader.readLine()) != null)
{
StringTokenizer tokenizer;
tokenizer = new StringTokenizer(line, " ");
while(tokenizer.hasMoreTokens())
{
contents.addElement(tokenizer.nextToken());
}
}
rspArgs = new String[contents.size()];
contents.copyInto(rspArgs);
parseArgs(rspArgs);
}
finally
{
if(reader != null)
{
reader.close();
}
}
}
/**
* @param listener TODO
* @since VCafe 3.0
*/
public void addArchiverListener(ArchiverListener listener)
{
options.addArchiverListener(listener);
}
/**
* @param argv TODO
* @exception java.lang.Exception
* @since VCafe 3.0
*/
public static void main(String[] argv)
throws NotDirectoryException,
FileNotFoundException,
IOException
{
Archiver archiver;
archiver = null;
try
{
archiver = new Archiver();
if(argv.length > 0)
{
if(archiver.parseArgs(argv))
{
StringBuffer errorMsg;
boolean retValue;
if(archiver.isDebug())
{
try
{
Debug.setWriter(archiver.getDebugLog());
}
catch(IOException ex)
{
ex.printStackTrace();
Debug.setWriter(System.err);
Debug.logWarning("Couldn't set debugLog to " + archiver.getDebugLog());
}
Debug.startLog(Archiver.class, VERSION);
}
errorMsg = new StringBuffer();
if((retValue = archiver.validate(errorMsg)))
{
if((retValue = archiver.create(errorMsg)))
{
if(archiver.isSigning())
{
retValue = archiver.sign(errorMsg);
}
}
}
if(!(retValue))
{
System.err.println(errorMsg);
}
if(archiver.isDebug())
{
Debug.finishLog();
}
}
}
else
{
archiver.showUsage();
}
}
catch(Throwable ex)
{
ex.printStackTrace();
Debug.logException(ex);
}
finally
{
if(archiver != null && archiver.options != null)
{
if(archiver.options.getTempDir() != null)
{
new Directory(archiver.options.getTempDir()).deleteAll();
}
}
}
}
}